/*
  学习目标：修改数据, 对count +1 和 -1
*/
import { legacy_createStore as createStore } from 'redux';

// 2. 通过reducer函数，计算新值并返回
// 💥 function (state= 初始值， action){ return 新的state}
const store = createStore(function (state = { count: 100, msg: 'hello React' }, action) {
  console.log('action  ----->  ', action);
  if (action.type === 'add') {
    // 💥 新值覆盖旧值
    // ❌ state.count + 1
    return {
      ...state,
      count: state.count + 1,
    };
  }

  if (action.type === 'des') {
    return {
      ...state,
      count: state.count - 1,
    };
  }

  return state;
});

console.log('store.getState()  ----->  ', store.getState().count);

// 1. 通过store.dispatch（）发起修改state的动作
// 语法： dispatch({type: "xxx"})
// 💥 dispatch必须接收一个action对象
// 💥action对象必须有一个type属性
store.dispatch({ type: 'add' });
store.dispatch({ type: 'add' });
store.dispatch({ type: 'add' });

store.dispatch({ type: 'des' });
console.log('store.getState()  ----->  ', store.getState().count);
